uniapp 获取所有页面的数据对象 getCurrentPages的使用 您所在的位置:网站首页 uniapp数组对象 某个属性筛选 uniapp 获取所有页面的数据对象 getCurrentPages的使用

uniapp 获取所有页面的数据对象 getCurrentPages的使用

2023-03-19 17:26| 来源: 网络整理| 查看: 265

 1.刷新当前也或上一页 var pages = getCurrentPages(); //获取所有页面的数组对象 var currPage = pages[pages.length - 1]; //当前页面 uni.reLaunch({                 url: currPage.$page.fullPath             }) var beforePage= pages[pages.length - 2]; //上一个页面  2.跳转回显

从A页面进入B页面以后,在B页面选择数据以后,通过getCurrentPages()函数得到上一个页面的实例对象,然后直接修改他的数据,在通过uni.navigateBack()函数直接返回,这里用了一个技巧就是通过uni.navigateBack()函数返回页面,不会对上一个页面进行刷新,这样就可以实现回显。

例子

A页面数据

let gender=ref(""); // 获取上一页返回的数据 let pages = getCurrentPages(); gender.value=pages[0].data.gender

B页面返回上一页并传递数据给gender

var pages = getCurrentPages() var prevPage = pages[pages.length - 2] prevPage.setData({ gender:"要修改的数据", }) uni.navigateBack({ delta: 1 }) 到这里已经可以实现回显了,但是!!!有坑,同时这个坑出现的概率非常小,但是会遇到,就是在B页面更改完A页面数据,返回A页面以后,A页面数据变了,但是A页面对应的数据丢失了响应式 ,会出现,数据更改了,但是页面要渲染的数据没发生改变。

解决办法

let idkey=ref(0); onShow(()=>{ idkey = new Date().getTime() })

当页面每次进入的时候直接页面生命周期onshow自动调用 让对应key值变量发生改变,来从新渲染页面,这样就可以解决这个大坑

扩展知识

2. 用 +new Date() 生成的时间戳作用Key ,收到强制触发重新渲染



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有